package test3.dao;

import test3.bean.Employee;
import test3.bean.EmployeeForQuery;

import java.util.List;
import java.util.Map;

public interface EmployeeDao {
    /**
     * 插入或者更新一个员工信息到后台静态数据中和数据源，即本地文件中
     * @param e 员工的信息
     */
    public void insertOrUpdate(Employee e) ;

    /**
     * 插入多名员工的信息到后台静态数据中和数据源，即本地文件中，且在集合中有原数据的员工的信息，
     * 会覆盖元数据的信息
     * @param es 多名员工信息的集合
     */
    public void insert(List<Employee> es);

    /**
     * 删除一名员工的信息
     * @param id 删除员工的id信息
     */
    public void delete(int id);

    /**
     * 查找所有的员工，返回所有员工信息的集合
     * @return 所有员工信息的集合
     */
    public List<Employee> queryAllByList();

    /**
     * 根据姓名查找员工的信息,可能存在多名相同名字的员工
     * @param ee 查找的员工的条件的所有信息
     * @return 结果员工的集合
     */
    public List<Employee> queryByRequre(EmployeeForQuery ee);

    /**
     * 根据员工的id号查找员工 ，只返回一个员工的信息
     * @param id 查找员工的id
     * @return 返回一个员工的信息
     */
    public Employee queryById(Integer id);

    /**
     * 得到在内存中存储数据的map引用
     * @return 内存中存储数据的集合
     */
    public Map<Integer,Employee>getMap();
}
